import request from '@/config/axios'

// 评测任务明细 VO
export interface EvaluationTaskItemVO {
  id: number // ID
  evaluationTaskId: number // 评测任务ID
  largeModelId: number // 模型Id
  largeModelName: string // 模型名称
  datasetId: number // 数据集Id
  datasetName: string // 数据集名称
  promptId: number // promptId
  promptName: string // prompt名称
  promptRemark: string // prompt描述
  datasetItemId: number // 数据集明细id
  evaluateStatus: number // 评测结果状态（0 正常，1失败 ）
  evaluateResult: string // 评测结果
  scoreStatus: number // 打分结果状态（0 正常，1失败 ）
  scoreResult: string // 打分结果
  datasetItemQuestion: string // 问题描述
  datasetItemAnswer: string // 答案描述
  modelAnswer: string // 模型答案
  indicator1Score: number // 指标1分数
  indicator2Score: number // 指标2分数
  indicator3Score: number // 指标3分数
  indicator4Score: number // 指标4分数
  indicator5Score: number // 指标5分数
  indicator6Score: number // 指标6分数
  indicator7Score: number // 指标7分数
  indicator8Score: number // 指标8分数
  indicator9Score: number // 指标9分数
  score?: string // 综合得分
}

// 评测任务明细 API
export const EvaluationTaskItemApi = {
  // 查询评测任务明细分页
  getEvaluationTaskItemPage: async (params: any) => {
    return await request.get({ url: `/multiModel/evaluation-task-item/page`, params })
  },

  // 查询评测任务明细详情
  getEvaluationTaskItem: async (id: number) => {
    return await request.get({ url: `/multiModel/evaluation-task-item/get?id=` + id })
  },

  // 新增评测任务明细
  createEvaluationTaskItem: async (data: EvaluationTaskItemVO) => {
    return await request.post({ url: `/multiModel/evaluation-task-item/create`, data })
  },

  // 修改评测任务明细
  updateEvaluationTaskItem: async (data: EvaluationTaskItemVO) => {
    return await request.put({ url: `/multiModel/evaluation-task-item/update`, data })
  },

  // 删除评测任务明细
  deleteEvaluationTaskItem: async (id: number) => {
    return await request.delete({ url: `/multiModel/evaluation-task-item/delete?id=` + id })
  },

  // 导出评测任务明细 Excel
  exportEvaluationTaskItem: async (params) => {
    return await request.download({ url: `/multiModel/evaluation-task-item/export-excel`, params })
  },

  // 获得评测任务失败原因
  getErrorInfo: async (id: number) => {
    return await request.get({ url: `/multiModel/evaluation-task-item/get-error-info?id=` + id })
  }
}
